home *** CD-ROM | disk | FTP | other *** search
/ Shareware Super Platinum 8 / Shareware Super Platinum 8.iso / mac / DATABASE / GSXSAM.ZIP;1 / DRAGDROP.PRG < prev    next >
Encoding:
Text File  |  1993-08-06  |  2.3 KB  |  75 lines

  1. ***************************************************************************
  2. *
  3. * Procedure file: DRAGDROP.PRG
  4. *         System: GenScrnX
  5. *        Version: 1.0
  6. *         Author: Ken R. Levy
  7. *        Company: Jet Propulsion Laboratory
  8. *      Copyright: None (Public Domain)
  9. *
  10. ***************************************************************************
  11. *
  12. * DRAGDROP - Drag and drop driver.
  13. *
  14. * Description:
  15. * This program is used as an optional driver for use with GENSCRNX.PRG.
  16. *
  17. * Features:
  18. * Generates function dp_lookup for drag and drop lookup.
  19. *
  20. * Notes:
  21. * In this program, for clarity/readability reasons, variable names
  22. * are used that are longer than 10 characters.  Note, however, that only
  23. * the first 10 characters are significant.
  24. *
  25. * Important:
  26. * Function calls made from this program may be contained in GENSCRNX.PRG.
  27. * Variable names not declared PRIVATE in this program defined PRIVATE in
  28. * GENSCRNX.PRG.
  29. *
  30. PRIVATE m.codedata,m.fnctname
  31.  
  32. * Ignore for header record or driver disable mode.
  33. IF OBJTYPE#1.OR..NOT.drvenable(PROGRAM())
  34.   GOTO BOTTOM
  35.   RETURN .F.
  36. ENDIF
  37.  
  38. * Verify that the a window name has been defined in the Screen Layout.
  39. IF EMPTY(NAME)
  40.   =warning("Driver '"+PROGRAM()+"' requires ["+ALLTRIM(m.platform_)+;
  41.            "] screen name to be defined")
  42.   GOTO BOTTOM
  43.   RETURN .F.
  44. ENDIF
  45.  
  46. * Create line of code for function.
  47. m.codedata='FUNCTION dp_lookup'+m.cr_lf+'PARAMETERS m.m_row,m.m_col,m.objmsg'+;
  48.            m.cr_lf+'PRIVATE m.m_row,m.m_col,m.objmsg'+m.cr_lf+m.cr_lf
  49.  
  50. IF m.codedata$PROCCODE
  51.   GOTO BOTTOM
  52.   RETURN .F.
  53. ENDIF
  54.  
  55. SCAN REST FOR .NOT.wordsearch('*:OBJEXE')==m.null
  56.   m.fnctname=wordsearch(m.c_function)
  57.   IF m.fnctname=m.null.OR.EMPTY(m.fnctname)
  58.     LOOP
  59.   ENDIF
  60.   m.codedata=m.codedata+'IF BETWEEN(m.m_row,'+ALLTRIM(STR(VPOS,7,3))+','+;
  61.              ALLTRIM(STR(VPOS+HEIGHT,7,3))+').AND.BETWEEN(m.m_col,'+;
  62.              ALLTRIM(STR(HPOS,7,3))+','+ALLTRIM(STR(HPOS+WIDTH,7,3))+')'+m.cr_lf+;
  63.              '  RETURN '+m.fnctname+'(m.objmsg)'+m.cr_lf+'ENDIF'+m.cr_lf
  64. ENDSCAN
  65.  
  66. m.codedata=m.codedata+'RETURN .F.'+m.cr_lf
  67. LOCATE FOR OBJTYPE=1
  68. REPLACE PROCCODE WITH PROCCODE+m.cr_lf+m.codedata
  69.  
  70. * Go to bottom of .SCX database to have GENSCRNX skip calling this driver
  71. * for every non-header record.
  72. GOTO BOTTOM
  73.  
  74. RETURN .T.
  75.